From: Roger Pau Monné Date: Mon, 10 Apr 2017 15:31:42 +0000 (+0200) Subject: xsm: fix clang 3.5 build after c47d1d X-Git-Tag: archive/raspbian/4.11.1-1+rpi1~1^2~66^2~2241 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22Dat/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22Dat?a=commitdiff_plain;h=3ceaf2e5a2eb629f2479d43a4aa6454da12a66ac;p=xen.git xsm: fix clang 3.5 build after c47d1d The changes introduced on c47d1d broke the clang build due to undefined references to __xsm_action_mismatch_detected, because clang hasn't optimized the code properly. The following patch allows the clang build to work again, while keeping the same functionality. Signed-off-by: Roger Pau Monné Acked-by: Daniel De Graaf --- diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h index 56a8814d82..62fcea6f04 100644 --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -557,25 +557,21 @@ static XSM_INLINE int xsm_hvm_param_altp2mhvm(XSM_DEFAULT_ARG struct domain *d) static XSM_INLINE int xsm_hvm_altp2mhvm_op(XSM_DEFAULT_ARG struct domain *d, uint64_t mode, uint32_t op) { - xsm_default_t a; XSM_ASSERT_ACTION(XSM_OTHER); switch ( mode ) { case XEN_ALTP2M_mixed: - a = XSM_TARGET; - break; + return xsm_default_action(XSM_TARGET, current->domain, d); case XEN_ALTP2M_external: - a = XSM_DM_PRIV; - break; + return xsm_default_action(XSM_DM_PRIV, current->domain, d); case XEN_ALTP2M_limited: - a = (HVMOP_altp2m_vcpu_enable_notify == op) ? XSM_TARGET : XSM_DM_PRIV; - break; + if ( HVMOP_altp2m_vcpu_enable_notify == op ) + return xsm_default_action(XSM_TARGET, current->domain, d); + return xsm_default_action(XSM_DM_PRIV, current->domain, d); default: return -EPERM; - }; - - return xsm_default_action(a, current->domain, d); + } } static XSM_INLINE int xsm_vm_event_control(XSM_DEFAULT_ARG struct domain *d, int mode, int op)